| 1 |
难度:★★★
|
考点:
2.1.1 冯·诺依曼计算机
知识点:
编译执行和解释执行
说明:
1. C/C++语言是编译执行,经过编译后生成目标平台的机器码,执行时cpu直接运行机器码。
2. java/c#是编译执行+解释执行,编译成通用的虚拟机指令,之后在运行时还需要再次将虚拟机指令解释称机器指令才能执行。
3. Python/Javascript等脚本语言是解释执行,直到运行时才将语句解释为机器码然后执行,没有编译过程,也不能提前发现错误。
4. 有兴趣深入学习的可以再了解一下JIT机制。
|
|
|
0.0/6.0
|
| 2 |
难度:★★★★★
|
考点:
编程思维
知识点:
问题分解
说明:
使用问题分解的思维,用四个单层循环,分别清除四个边上的数据,逻辑清晰简单,不容易出错。
|
【拷贝机器人回答不得分】
按照下述得分点累计得分,满分20分
1. 能够使用循环处理正确实现任意一条边上的元素清空(比如丛[1, 1]循环到[n-2, 1]),得5分。
2. 能够实现四条边上的元素清空,酌情得5-10分。
3. 整体处理逻辑严密,下标控制正确,能够适应输入数组的不同大小,酌情得1-5分。
|
string a[n][n];
int i ,j;
string a[i][j];
if(n=1){
for(i=1,i<n,i++)
{printf("%s",a[1][n])}}
if(j=2){
printf("%s",a[2][1],a[2][n])}
|
0.0/20.0
|
| 3 |
难度:★★★★
|
考点:
函数
知识点:
形参/实参
说明:
在函数foo定义中,xy是形式参数。
在(递归)调用foo时,xy作为实参传入。
|
|
|
0.0/6.0
|
| 4 |
难度:★★★★
|
考点:
冯·诺依曼计算机
知识点:
内存/外存
说明:
Main Memory:内存(高速、断电信息消失)
Storage: 外部存储器(低速、断电信息不消失),注意与输入设备相区别。
显示器:属于输出设备
题目中的文件显然是保存在外部存储器上的,因此数据需要先从外部存储器到内部存储器,然后经过CPU处理后,显示到输出设备上(显示器)。
|
|
|
6.0/6.0
|
| 5 |
难度:★★★★★
|
考点:
变量和类型
知识点:
引用变量/值变量
说明:
1. 图中只有myObject是肯定保存在堆内存中。四个变量可能在堆内存也可能是栈内存,取决于变量的声明(比如:静态变量在堆,局部变量在栈)。
2. 不论是否有垃圾回收器,系统都不会因为ref0超出作用范围而将ref1初始化为空。
3. ref0和ref1指向同一个对象,在高级语言的语法中,引用变量比较时是比引用目标,所以相等。
|
|
|
0.0/6.0
|
| 6 |
难度:★★★★★
|
考点:
编程思维
知识点:
算法构建
|
【拷贝机器人回答不得分】
按照如下步骤累计得分,满分20分。
1. 具有判断数字还是字母,奇数还是偶数的处理,酌情得1-5分
2. 能够正确地把奇数、偶数、字母分别赋值到arrayB、arrayC、arrayD中,酌情得1-5分
3. 能够保证arrayB、arrayC、arrayD中元素的顺序、位置与arrayA一样,并使用空格正确填充恰当位置的,酌情得1-10分。
|
Arraylist list = new ArrayList();
for( int i=0;i<20;i++ )
List.Add(i);
for( int j=1;j<=6;j++)
List.RemoveAt(j);
for( int m=8;m<=13;m++ )
List.RemoveAt(m);
for( int n=15;n<=17;n++ )
List.RemoveAt(n);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));
|
0.0/20.0
|
| 7 |
难度:★★★★
|
考点:
基础数据结构
知识点:
列表
说明:
本题中示意的集合类型不符合下述类型的特征:
队列:先进先出,不能在中间插入元素
Set:一般使用具有索引功能的底层存储结构比如hash table等,从而有利于进行集合运算。
ArrayList:支持按照下标随机存取,底层存储结构一般是数组。
|
【拷贝机器人回答不得分】
按照下述得分点累计得分,满分15分
1. 回答:链表、列表、List之一,得5分,但是回答双向链表、队列、ArrayList、Set的,不得分。
2. 编写伪代码,或者说明中,能够体现下述意思的,酌情得5-10分
先保存节点b的Next引用(指针)变量的值到临时变量,然后通过赋值让节点b的next指向节点new,最后通过赋值让节点new的next指向节点c。
|
数组
for(int i=0;i<a.length;i++){
if(index==i){
for(int j=i;j<b.length-1;j++){
newNums[j+1]=nums[j];
}
newNums[i]=x;
break;
}else{//循环在插入位置之前
newNums[i] = nums[i];
}
}
|
0.0/15.0
|
| 8 |
难度:★★★★
|
考点:
基础数据结构
知识点:
HashMap
说明:
1. 哈希(Hash)函数负责根据key的值,计算得到一个整数(哈希值),用来映射到HashMap的存储空间,这样做的目的是不必像List那样遍历,就能快速定位到保存数据的地址。最简单的哈希函数就是取余数。
2. 因为Key的取值范围通常大于HashMap中所分配的存储空间大小,所以存在不同的Key计算得到相同哈希值的情形,叫做哈希碰撞。比如:不同的整数取余数可以相等。
|
【拷贝机器人回答不得分】
按照下述得分点累计得分,最高15分。本题中,哈希=散列,两种说法均可。
1. 回答:HashMap或者HashTable的,得5分
2. 明确回答黑色箭头代表:哈希函数、哈希处理、哈希算法、哈希映射、哈希索引等之一的,均可得5分
3. 明确回答红色箭头代表:哈希冲突、哈希碰撞之一的,均可得5分
|
map集合,值键对。黑色箭头是根据地址访问vbal
|
5.0/15.0
|
| 9 |
难度:★★★
|
考点:
基础数据结构
知识点:
数组
说明:
1. arrayB是引用类型的数组,arrayA是值类型数组
2. 数组不可改变大小,注意区别数组和List。
3. Java中的ArrayList是List不是数组。
|
|
|
6.0/6.0
|